맨위로가기

그래픽 사용자 인터페이스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

그래픽 사용자 인터페이스(GUI)는 사용자가 컴퓨터와 상호 작용할 수 있도록 돕는 인터페이스의 한 유형이다. 1960년대에 개발된 스케치패드는 GUI의 초기 형태였으며, 이후 제록스 파크에서 마우스와 아이콘, 창 등의 요소를 갖춘 GUI가 개발되었다. 애플의 매킨토시와 마이크로소프트 윈도우의 상업적 성공으로 GUI는 널리 사용되었고, 현재는 데스크톱, 모바일 기기 등 다양한 환경에서 사용된다. GUI는 WIMP(창, 아이콘, 메뉴, 포인터) 패러다임을 기반으로 하며, 키보드, 마우스, 터치스크린 등 다양한 입력 장치를 활용한다. 최근에는 3D GUI, 포스트 윔프 인터페이스, 선언적 UI 등 다양한 형태의 GUI가 개발되고 있다.

더 읽어볼만한 페이지

  • 그래픽 사용자 인터페이스 - 메트로 (디자인 언어)
    마이크로소프트가 스위스 그래픽 디자인과 런던 지하철 표지판에서 영감을 받아 개발한 메트로 디자인 언어는 큰 텍스트, 간결한 타이포그래피, 라이브 타일 등의 특징을 가지며 Windows, Xbox, Microsoft Office 등 다양한 제품에 적용되었고, 상표권 문제와 함께 명칭 변경 및 MDL2로 진화하며 사용자 경험에 대한 엇갈린 평가를 받았다.
  • 그래픽 사용자 인터페이스 - 작업 표시줄
    작업 표시줄은 윈도우 운영체제에서 화면 하단에 위치하여 프로그램 실행, 창 관리, 시스템 상태 확인 기능을 제공하는 사용자 인터페이스 요소이며, 윈도우 95부터 도입되어 다양한 사용자 정의 설정을 지원하며 발전해 왔다.
  • 소프트웨어 구조 - Ajax
    Ajax는 웹 페이지 전체를 새로고침하지 않고 비동기적으로 서버와 통신하여 웹 애플리케이션의 일부를 업데이트하는 웹 개발 기술로, XMLHttpRequest 객체의 등장으로 가능해졌으며 HTML, CSS, DOM, JavaScript, JSON 등의 기술을 통합하여 동적인 사용자 인터페이스를 구현한다.
  • 소프트웨어 구조 - 멀티테넌시
    멀티테넌시는 단일 애플리케이션 인스턴스로 여러 고객에게 서비스를 제공하여 SaaS 및 클라우드 환경에서 비용과 관리 효율성을 높이고 데이터 활용 가치를 창출하는 소프트웨어 아키텍처 방식이다.
  • 소프트웨어에 관한 - 크래프톤
    크래프톤은 배틀그라운드 시리즈의 성공을 기반으로 성장한 대한민국의 비디오 게임 개발 및 퍼블리싱 기업이자 지주회사로, 여러 자회사를 통해 다양한 게임을 개발 및 서비스하며 글로벌 시장에서 영향력을 확대하고 있다.
  • 소프트웨어에 관한 - 넷마블
    넷마블은 2000년 방준혁 의장이 설립하여 게임 서비스 사업으로 성장, CJ그룹 편입 및 유가증권시장 상장을 거쳐 '리니지2 레볼루션' 성공과 해외 시장 진출 확대를 이루었으나, 최근 메타버스 사업 실패 및 구조조정 등의 어려움 속에서 사업 다각화를 시도하며 향후 행보가 주목되는 대한민국의 게임 기업이다.
그래픽 사용자 인터페이스
그래픽 사용자 인터페이스
다양한 그래픽 사용자 인터페이스 요소들의 예시
다양한 그래픽 사용자 인터페이스 요소들의 예시
정의사용자가 컴퓨터와 상호 작용할 수 있도록 그래픽 요소를 사용하는 인터페이스
작동 방식아이콘, 메뉴, 창 등을 통해 사용자가 명령을 내리고 결과를 시각적으로 확인
예시윈도우
macOS
안드로이드
iOS
특징
장점사용하기 쉽고 직관적임
명령어를 몰라도 컴퓨터 사용 가능
시각적 요소로 사용자에게 친숙함
단점자원 소모가 크고 속도가 느릴 수 있음
세밀한 제어에는 한계가 있을 수 있음
구성 요소
아이콘
메뉴
버튼
커서
역사
최초의 GUI제록스 알토
대중화애플의 매킨토시와 마이크로소프트의 윈도우
종류
데스크톱 GUI윈도우, macOS, 리눅스
모바일 GUI안드로이드, iOS 등
웹 GUI웹 브라우저를 통해 제공되는 사용자 인터페이스
발전
최근 동향터치 인터페이스
음성 인터페이스
가상 현실증강 현실 인터페이스
관련 용어
명령어 인터페이스텍스트 기반 명령어 인터페이스
터치 인터페이스손가락 터치를 이용한 인터페이스
자연어 인터페이스사용자의 자연어를 이해하는 인터페이스
추가 정보
참고 자료GUI 정의 (Linux Information Project)
관련 정보명령줄 vs GUI (Computer Hope)
GUI 대 명령줄 (Microsoft Learn) 1부
GUI 대 명령줄 (Microsoft Learn) 2부
GUI (PC Magazine Encyclopedia)
참고자료GUI (IT 용어 사전 바이너리)

2. 역사

1960년대 이반 서덜랜드의 스케치패드컴퓨터 지원 설계(CAD) 소프트웨어의 조상이자 최초의 완전한 그래픽 사용자 인터페이스(GUI) 구현이었다. 비슷한 시기 더글라스 엥겔바트와 SRI 인터내셔널 연구자들은 하이퍼링크 기반 마우스를 사용하는 NLS(On-line System)를 개발했다.

제록스 파크는 NLS의 하이퍼링크 개념을 그래픽으로 확장, 1973년 제록스 알토 컴퓨터는 GUI를 사용하는 최초의 컴퓨터가 되었다. 이 인터페이스는 '파크 사용자 인터페이스(PUI)'라고도 불리며, 윈도, 메뉴, 아이콘, 라디오 단추, 체크 상자 등의 그래픽 요소와 마우스 같은 포인팅 장치를 키보드와 함께 사용한다.

이후 애플 컴퓨터는 제록스 파크의 GUI를 보고 비상장 애플 주식 100만달러 어치를 지불, 기술을 전수받았다. 1983년 GUI 기반 리사를 출시했으나 비싼 가격으로 실패했다. 1984년 매킨토시는 상업적 성공을 거두었고, 마이크로소프트마이크로소프트 윈도우를 개발해 매킨토시 아이디어를 모방, 법정 소송을 겪기도 했다. 1995년 윈도우 95 출시로 GUI 대중화가 이루어졌다. 유닉스(UNIX)와 그 계열 리눅스X 윈도 시스템으로 GUI를 구현한다.

세계 최초의 실용적인 GUI는 1963년 미국 공군 방공 관제 시스템 SAGE(세이지)이다.

2. 1. 초기 역사

1960년대에 이반 서덜랜드가 개발한 스케치패드컴퓨터 지원 설계(CAD) 소프트웨어의 조상이자 최초로 완전한 그래픽 사용자 인터페이스를 구현한 것이었다.[48] 비슷한 시기에 더글라스 엥겔바트를 비롯한 SRI 인터내셔널의 연구자들은 하이퍼링크를 기반으로 마우스를 사용하는 NLS(On-line System)를 개발하였다. 1968년 12월 NLS의 데모는 "모든 데모의 어머니"로 알려지게 되었다.[48]

제록스 파크는 NLS의 하이퍼링크 개념을 그래픽으로 확장했다. 1973년에 개발된 제록스 알토 컴퓨터는 그래픽 사용자 인터페이스를 사용하는 최초의 컴퓨터가 되었다. 현재 대부분의 그래픽 사용자 인터페이스는 기본적으로 이 인터페이스에서 유래했으며, 어떤 사람들은 이들을 ‘파크 사용자 인터페이스(PUI)’라고 부르기도 한다. 파크 사용자 인터페이스는 윈도, 메뉴, 아이콘, 라디오 단추, 체크 상자 등의 그래픽 요소들을 사용하며, 마우스와 같은 포인팅 장치를 키보드와 함께 사용한다.

이후 애플 컴퓨터는 제록스 파크에서 만든 이러한 그래픽 사용자 인터페이스를 보고 당시 비상장이었던 애플의 주식 액면가 100만달러 어치를 지불하고 기본적인 기술을 전수받았다. 1983년개인용 컴퓨터리사(LISA)를 출시했지만 값이 너무 비싼 탓에 실패하였다. 그러나 이후 1984년에 나온 애플의 매킨토시는 상업적인 성공을 이뤘다.

애플 리사(1983)는 애플 컴퓨터의 최초 상용 GUI인 Lisa Office System (LisaOS)을 보여준다.

2. 2. 상용화 및 대중화

그래픽 사용자 인터페이스(GUI)의 아이디어는 1960년대에 제안되었다. 1973년 제록스 파크에서 개발된 제록스 알토 컴퓨터는 GUI를 사용하는 최초의 컴퓨터였다. 현재 대부분의 GUI는 기본적으로 이 인터페이스에서 유래했으며, 어떤 사람들은 이들을 '파크 사용자 인터페이스(PUI)'라고 부르기도 한다. PUI는 윈도, 메뉴, 아이콘, 라디오 단추, 체크 상자 등의 그래픽 요소들을 사용하며, 마우스와 같은 포인팅 장치를 키보드와 함께 사용한다.

이후 애플 컴퓨터는 제록스 파크에서 만든 GUI를 보고 기술을 전수받았다. 1983년 GUI 기반 컴퓨터 리사를 출시했지만 값이 너무 비싸 실패했다. 그러나 1984년에 나온 애플의 매킨토시는 상업적인 성공을 거두었다. 마이크로소프트마이크로소프트 윈도우를 개발하여 매킨토시의 아이디어를 모방하였고, 이후 법정 소송을 거치기도 하였다. 1995년 마이크로소프트윈도우 95를 출시하여 성공을 거둠으로써 본격적인 GUI의 대중화를 이루었다. 유닉스(UNIX)와 그 계열리눅스에서는 X 윈도 시스템을 통해 GUI를 구현하고 있다.

1980년대 초, GUI는 큰 화두였다. 1983년 애플 리사가 출시되었고, DOS 운영 체제( PC GEM 및 PC/GEOS 포함)를 위한 다양한 윈도우 시스템이 존재했다. 많은 플랫폼의 개별 응용 프로그램들은 자체적인 GUI 변형을 제시했다.[27] GUI의 장점에도 불구하고, 많은 평론가들은 하드웨어 한계와 호환 가능한 소프트웨어를 찾는 데 어려움을 지적하며,[28] 전체 개념의 가치에 의문을 제기했다.

1984년, 애플은 CBS가 방송한 슈퍼볼 XVIII 중계 방송 시간에 텔레비전 광고를 통해 애플 매킨토시를 공개했다.[29] 이 광고는 조지 오웰의 소설 ''1984''를 암시하며,[30] 사용자 친화적인 인터페이스를 기존의 비즈니스 중심 시스템과 차별화되는 개인용 컴퓨터로 인식시키고, 애플 제품의 대표적인 상징으로 자리매김하는 것을 목표로 했다.[31]

1985년, 코모도어는 아미가 1000과 함께 워크벤치 1.x 및 킥스타트 1.0 (인투이션 포함)을 출시했다. 이 인터페이스는 별도의 작업으로 실행되어 매우 반응성이 뛰어났으며, 당시 다른 GUI와 달리 프로그램이 바쁜 경우 작동이 멈추지 않았다. 또한, 가상 데스크톱과 유사한 기능을 처음으로 도입한 GUI였다.

광범위한 마케팅 캠페인과 함께 출시된 윈도우 95[32]는 시장에서 큰 성공을 거두었고, 곧 가장 인기 있는 데스크톱 운영 체제가 되었다.[33]

2007년 아이폰[34], 그리고 2010년 아이패드[35] 출시를 통해 애플은 멀티터치 화면을 위한 WIMP 이후 방식의 상호 작용을 대중화했으며, 이러한 기기들은 모바일 기기 개발의 이정표로 여겨졌다.[36][37]

2010년대 중후반 대부분의 사람들에게 친숙한 GUI는 데스크톱 및 노트북 컴퓨터의 경우 마이크로소프트 윈도우, macOS, X 윈도우 시스템 인터페이스이며, 휴대용( 스마트폰) 기기의 경우 안드로이드, 애플의 iOS, 심비안, 블랙베리 OS, 윈도우 폰/윈도우 10 모바일, 타이젠, 웹OS, 파이어폭스 OS이다.[38][39]

3. 구성 요소

GUI의 시각적 구성과 시간적 동작 설계는 소프트웨어 응용 프로그램 프로그래밍에서 인간-컴퓨터 상호 작용 영역의 중요한 부분이다. GUI 설계의 목표는 저장된 프로그램의 기본 논리 설계에 대한 효율성과 사용 편의성을 향상시키는 것이며, 이러한 설계 분야는 ''사용성''이라고 한다. 사용자 중심 설계 방법을 사용하여 설계에 도입된 시각 언어가 작업에 적합하도록 한다.

응용 프로그램의 시각적 그래픽 인터페이스 기능은 때때로 "크롬(chrome)" 또는 "GUI"라고 불린다.[12][13][14] 일반적으로 사용자는 보유한 데이터의 종류에 적합한 상호 작용을 허용하는 시각적 위젯을 조작하여 정보와 상호 작용한다. 잘 설계된 인터페이스의 위젯은 사용자의 목표를 달성하는 데 필요한 작업을 지원하도록 선택된다. 모델-뷰-컨트롤러는 인터페이스가 응용 프로그램 기능과 독립적이고 간접적으로 연결되어 GUI를 쉽게 사용자 지정할 수 있는 유연한 구조를 허용한다. 이를 통해 사용자는 원하는 대로 다른 "스킨" 또는 "테마"를 선택하거나 디자인할 수 있으며, 사용자 요구 사항이 변화함에 따라 디자이너가 인터페이스를 변경하는 작업을 용이하게 한다. 좋은 GUI 디자인은 시스템 아키텍처보다 사용자와 더 관련이 있다.

과 같은 큰 위젯은 주로 웹 페이지, 이메일 메시지 또는 그림과 같은 주요 프레젠테이션 콘텐츠에 대한 프레임이나 컨테이너를 제공한다. 작은 위젯은 일반적으로 사용자 입력 도구 역할을 한다.

GUI는 현금 자동 입출금기(ATM), 레스토랑의 판매 시점(POS) 터치스크린,[15] 소매점의 셀프 서비스 체크아웃, 항공사 셀프 티켓 및 체크인, 기차역이나 박물관과 같은 공공 장소의 정보 키오스크, 실시간 운영 체제(RTOS)를 사용하는 임베디드 산업 응용 프로그램의 모니터 또는 제어 화면과 같이 특정 수직 시장의 요구 사항에 맞게 설계될 수 있다.

휴대폰과 휴대용 게임 시스템도 응용 프로그램별 터치스크린 GUI를 사용한다. 최신 자동차는 내비게이션 시스템과 멀티미디어 센터 또는 내비게이션 멀티미디어 센터 조합에 GUI를 사용한다.

GUI는 컴퓨터 화면에 표시됩니다. 이는 처리된 사용자 입력의 결과이며 일반적으로 인간-컴퓨터 상호 작용을 위한 주요 인터페이스입니다. 소형 모바일 기기에서 인기 있는 터치 UI는 시각적 출력에 대한 시각적 입력의 오버레이입니다.


GUI의 계층 구조 (윈도우 시스템 기반)

3. 1. 기본 요소

GUI는 사용자가 정보 수집 및 생성 작업을 위해 상호 작용할 수 있는 플랫폼을 제공하기 위해 여러 기술과 장치를 결합하여 사용한다.

컴퓨터에 저장된 정보를 나타내는 시각 언어를 따르는 일련의 요소들이 발전해 왔다. 이를 통해 컴퓨터 기술이 부족한 사람들도 컴퓨터 소프트웨어를 더 쉽게 사용할 수 있도록 한다. GUI에서 이러한 요소들의 가장 일반적인 조합은 특히 개인용 컴퓨터에서 '창, 아이콘, 텍스트 필드, 캔버스, 메뉴, 포인터'( WIMP) 패러다임이다.[16]

WIMP 방식의 상호 작용은 대부분 마우스인 포인팅 장치 인터페이스의 위치를 나타내는 가상 입력 장치를 사용하고, 창으로 정리되고 아이콘으로 표시되는 정보를 제공한다. 사용 가능한 명령어는 메뉴에 함께 컴파일되고, 포인팅 장치로 제스처를 만들어 작업을 수행한다. 윈도우 관리자는 창, 응용 프로그램 및 윈도우 시스템 간의 상호 작용을 용이하게 한다. 윈도우 시스템은 포인팅 장치, 그래픽 하드웨어 및 포인터의 위치 지정과 같은 하드웨어 장치를 처리한다.

개인용 컴퓨터에서 이러한 모든 요소는 데스크톱 메타포를 통해 모델링되어, 디스플레이가 데스크톱을 나타내고 그 위에 문서와 문서 폴더를 배치할 수 있는 데스크톱 환경이라는 시뮬레이션을 생성한다. 윈도우 관리자 및 기타 소프트웨어는 다양한 수준의 현실감으로 데스크톱 환경을 시뮬레이션하기 위해 결합된다.

항목은 텍스트와 세부 정보를 위한 공간을 확보하기 위해 목록에 표시되거나, 간결성과 더 큰 아이콘을 위해 그리드에 표시될 수 있으며, 텍스트를 위한 공간이 아이콘 아래에 거의 없다. 항목의 여러 열이 있는 목록이나 아이콘에서 옆으로 확장되는 텍스트 행이 있는 항목의 그리드와 같이 그 사이에 다양한 변형이 존재한다.[17]

웹에서 일반적으로 볼 수 있는 여러 행과 여러 열 레이아웃은 "선반"과 "폭포"이다. 전자는 이미지가 고정된 높이를 가지지만 가변 길이를 가지는 이미지 검색 엔진에서 찾을 수 있으며, 일반적으로 CSS 속성 및 매개변수 `display: inline-block;`를 사용하여 구현된다. Imgur 및 TweetDeck에서 고정된 너비이지만 항목당 높이가 가변적인 폭포 레이아웃은 일반적으로 `column-width: `를 지정하여 구현된다.

GUI에서는 컴퓨터 화면에 창, 아이콘, 버튼과 같은 그래픽이 표시되며, 사용자는 마우스 등의 포인팅 장치를 사용하여 원하는 동작을 나타내는 그래픽을 선택한다.

기본적으로는 "바탕 화면", "창", "메뉴", "아이콘", "버튼" 등의 요소를 조합하여 구성되며, 이러한 요소들을 포인팅 장치에 의해 조작되는 커서를 통해 지시한다.

간단히 말해, 화면의 버튼이나 이미지 등을 선택하여 반응을 발생시키는 메커니즘을 총칭하여 GUI라고 한다.

;바탕 화면

:X Window System에서는 루트 윈도우라고 한다. “바탕 화면”을 의미한다. 이 위에 창을 겹쳐 놓음으로써 인터페이스는 멀티태스킹을 실현한다. 일반적인 인터페이스에서는 여기에 응용 프로그램이나 데이터의 아이콘을 두고, 여기서 작업을 시작할 수 있도록 한다. 이 화면은 기존의 디렉토리 구성과는 상호 운용되지 않는 입장이기 때문에, 특수한 위치에 놓이는 디렉토리를 참조하는 형태로 데이터의 내용을 정의한다.

:바탕 화면 배경에 이미지나 각종 액세서리를 배치하여 시각적으로 즐겁게 하는 기능이 제공된다. 또한, 응용 프로그램의 역할을 하는 Active Desktop이나 가젯 등(위젯 엔진)을 배치할 수도 있다.

:최근에는 가상 데스크톱을 큐브로 표시하거나, 아이콘의 배치에 입체감을 더하고, 창을 입체적으로 표시하는 등 3D 효과로 조작성을 향상시키는 바탕 화면 환경이 늘고 있다. 유닉스 계열윈도우 매니저의 Compiz, Windows Vista의 Aero, 썬 마이크로시스템즈의 Project Looking Glass 등이 그 예이다.

;

:응용 프로그램이 데이터를 처리하기 위한 그래픽 인터페이스에서 하나의 단위가 되는 것. 창 안에서는 응용 프로그램과 데이터가 하나가 된다. 여기서 응용 프로그램을 조작하고, 데이터를 관리, 생성, 편집한다. 일반적으로 메뉴, 아이콘 등을 주변에 배치하고, 중앙에 데이터를 둔다.

:창에는 데이터나 응용 프로그램에 따라 제목이 붙고, 창의 최상단에 제목이 표시된다. 일반적으로 창을 디스플레이 전체에 표시하는 “최대화”, 표시를 숨기는 “최소화”, 여러 개의 창 중 가장 앞으로 가져오기, 제목만 표시하는 “숨기기” 등이 지원되어, 이를 통해 창의 조작을 간편하게 할 수 있다.

:; 단일 문서 인터페이스 (''SDI'')

::창에서 하나의 데이터를 하나의 창 안에 완결시키는 방식. 이 경우 데이터의 수만큼 창이 출력된다. 다른 응용 프로그램의 창과 비교하여 사용할 수 있지만, 그만큼 창의 수가 많아져 관리가 복잡해진다.

:; 다중 문서 인터페이스 (''MDI'')

::하나의 창 안에 중첩하여 창이 표시되고, 여러 개의 데이터를 관리하는 방식. 이 경우 창 관리가 간편해지지만, 작업 관리가 이중화된다.

:; 탭

::MDI에서의 데이터 관리 방식 중 데이터의 제목을 창 안에 나란히 배치하고, 제목을 선택하여 필요한 데이터만 표시하는 것. 이를 통해 간편하게 데이터에 접근할 수 있게 된다.

; 메뉴

:응용 프로그램, 운영 체제(OS)에서 지시할 수 있는 명령을 계층적으로 표현한 것. 화면 상단 또는 화면 하단에 배치되며, 해당 응용 프로그램에서 사용할 수 있는 명령이 거의 모두 배치된다. 일반적으로 왼쪽에 중요도가 높은 것이 배치되고, 오른쪽으로 갈수록 중요도가 낮아진다. 명령의 계층은 응용 프로그램에 따라 다르지만, 파일 조작, 편집 기능을 중시하여 이러한 명령을 왼쪽부터 배치하고, 오른쪽에는 도움말 등이 배치된다. 마우스의 왼쪽 버튼으로 조작한다.

; 상황에 맞는 메뉴

:응용 프로그램이 준비한 계층적 메뉴와는 별도로, 메뉴 이외의 곳에서 마우스의 오른쪽 버튼 등을 눌렀을 때 작동하는 메뉴. 버튼이 호출된 위치에 따라 메뉴의 내용이 바뀌어 편집 작업을 간편하게 할 수 있도록 되어 있다.

; 아이콘

:데이터 관리 응용 프로그램에서 데이터, 응용 프로그램, 디렉토리 등을 표현한 것.

:데이터 관리 응용 프로그램, 즉 디렉토리에서의 사용자 데이터 관리나 특정 데이터를 관리하는 응용 프로그램의 경우, 아이콘으로 데이터를 표현한다. 일반적으로 데이터의 내용이나 확장자 등에서 연관된 응용 프로그램을 표현하지만, 사용자가 자유롭게 변경할 수 있는 경우도 있다.

:데이터의 아이콘은 열면 연관된 응용 프로그램의 시작을 지원한다. 응용 프로그램 아이콘은 응용 프로그램의 시작만 수행한다.

; 버튼

:메뉴 중에서 사용 빈도가 높은 명령을 그림으로 표현하여 응용 프로그램 내에 배치한 것.

:응용 프로그램에 배치되는 버튼은 일반적으로 메뉴를 대신한다. 사용 빈도가 높은 것부터 배치되며, 메뉴의 계층을 거치지 않고도 해당 기능을 사용할 수 있도록 되어 있다. 그러나 사용자에 따라 명령의 사용 빈도가 다르므로, 이 배치를 편집할 수 있도록 되어 있는 것이 일반적이다.

GUI에서 작업은 창 단위로 분할된다. MDI와 macOS(Mac OS 포함)의 경우를 제외하고는 "창의 개수 = 작업의 개수"인 경우가 많다. 따라서 인터페이스 전체를 볼 때 어떻게 작업 관리를 하는지가 중요해진다. Microsoft Windows 95 이후의 Windows 계열에서 가장 흔한 방식은 작업 표시줄(Taskbar)이라고 불리는 막대 모양의 영역을 데스크톱에 마련하고, 여기에 각 창의 아이콘이나 제목을 나열하는 것이다. 이를 통해 시인성과 조작성을 확보하면서 많은 창을 관리할 수 있다. 다른 방법으로는 데스크톱의 메뉴에 각 창을 관리하는 메뉴를 추가하거나(예: Windows 3.x 계열의 방식), 데스크톱에 작업을 아이콘으로 표시하거나, 작업의 개수만큼 가상 데스크톱을 준비하는 방식(예: Palm WebOS) 등이 있다. macOS는 Dock을 사용하여 작업 관리를 하지만, Mission Control이라는 창 목록 표시 모드도 함께 사용된다.

3. 2. 기타 요소

GUI는 사용자가 정보 수집 및 생성 작업을 위해 상호 작용할 수 있는 플랫폼을 제공하기 위해 여러 기술과 장치를 결합하여 사용한다. 컴퓨터에 저장된 정보를 나타내는 시각 언어를 따르는 일련의 요소들이 발전해 왔으며, 이를 통해 컴퓨터 기술이 부족한 사람들도 컴퓨터 소프트웨어를 더 쉽게 사용할 수 있다.[16]

개인용 컴퓨터에서 이러한 요소들의 가장 일반적인 조합은 '창, 아이콘, 텍스트 필드, 캔버스, 메뉴, 포인터'( WIMP) 패러다임이다.[16] WIMP 방식의 상호 작용은 대부분 마우스인 포인팅 장치 인터페이스의 위치를 나타내는 가상 입력 장치를 사용하고, 창으로 정리되고 아이콘으로 표시되는 정보를 제공한다. 사용 가능한 명령어는 메뉴에 함께 컴파일되고, 포인팅 장치로 제스처를 만들어 작업을 수행한다.[16] 윈도우 관리자는 창, 응용 프로그램 및 윈도우 시스템 간의 상호 작용을 용이하게 한다. 윈도우 시스템은 포인팅 장치, 그래픽 하드웨어 및 포인터의 위치 지정과 같은 하드웨어 장치를 처리한다.[16]

개인용 컴퓨터에서 이러한 모든 요소는 데스크톱 메타포를 통해 모델링되어, 디스플레이가 데스크톱을 나타내고 그 위에 문서와 문서 폴더를 배치할 수 있는 데스크톱 환경이라는 시뮬레이션을 생성한다. 윈도우 관리자 및 기타 소프트웨어는 다양한 수준의 현실감으로 데스크톱 환경을 시뮬레이션하기 위해 결합된다.

항목은 텍스트와 세부 정보를 위한 공간을 확보하기 위해 목록에 표시되거나, 간결성과 더 큰 아이콘을 위해 그리드에 표시될 수 있으며, 텍스트를 위한 공간이 아이콘 아래에 거의 없다. 항목의 여러 열이 있는 목록이나 아이콘에서 옆으로 확장되는 텍스트 행이 있는 항목의 그리드와 같이 그 사이에 다양한 변형이 존재한다.[17]

웹에서 일반적으로 볼 수 있는 여러 행과 여러 열 레이아웃은 "선반"과 "폭포"이다. 전자는 이미지가 고정된 높이를 가지지만 가변 길이를 가지는 이미지 검색 엔진에서 찾을 수 있으며, 일반적으로 CSS 속성 및 매개변수 `display: inline-block;`를 사용하여 구현된다. Imgur 및 TweetDeck에서 고정된 너비이지만 항목당 높이가 가변적인 폭포 레이아웃은 일반적으로 `column-width:를 지정하여 구현된다.

GUI에서는 컴퓨터 화면에 창, 아이콘, 버튼과 같은 그래픽이 표시되며, 사용자는 마우스 등의 포인팅 장치를 사용하여 원하는 동작을 나타내는 그래픽을 선택한다.

기본적으로는 "바탕 화면", "창", "메뉴", "아이콘", "버튼" 등의 요소를 조합하여 구성되며, 이러한 요소들을 포인팅 장치에 의해 조작되는 커서를 통해 지시한다.

간단히 말해, 화면의 버튼이나 이미지 등을 선택하여 반응을 발생시키는 메커니즘을 총칭하여 GUI라고 한다.

;바탕 화면

:X Window System에서는 루트 윈도우라고 한다. “바탕 화면”을 의미한다. 이 위에 창을 겹쳐 놓음으로써 인터페이스는 멀티태스킹을 실현한다. 일반적인 인터페이스에서는 여기에 응용 프로그램이나 데이터의 아이콘을 두고, 여기서 작업을 시작할 수 있도록 한다. 이 화면은 기존의 디렉토리 구성과는 상호 운용되지 않는 입장이기 때문에, 특수한 위치에 놓이는 디렉토리를 참조하는 형태로 데이터의 내용을 정의한다.

:바탕 화면 배경에 이미지나 각종 액세서리를 배치하여 시각적으로 즐겁게 하는 기능이 제공된다. 또한, 응용 프로그램의 역할을 하는 Active Desktop이나 가젯 등(위젯 엔진)을 배치할 수도 있다.

:최근에는 가상 데스크톱을 큐브로 표시하거나, 아이콘의 배치에 입체감을 더하고, 창을 입체적으로 표시하는 등 3D 효과로 조작성을 향상시키는 바탕 화면 환경이 늘고 있다. 유닉스 계열윈도우 매니저의 Compiz, Windows Vista의 Aero, 썬 마이크로시스템즈의 Project Looking Glass 등이 그 예이다.

;

:응용 프로그램이 데이터를 처리하기 위한 그래픽 인터페이스에서 하나의 단위가 되는 것. 창 안에서는 응용 프로그램과 데이터가 하나가 된다. 여기서 응용 프로그램을 조작하고, 데이터를 관리, 생성, 편집한다. 일반적으로 메뉴, 아이콘 등을 주변에 배치하고, 중앙에 데이터를 둔다.

:창에는 데이터나 응용 프로그램에 따라 제목이 붙고, 창의 최상단에 제목이 표시된다. 일반적으로 창을 디스플레이 전체에 표시하는 “최대화”, 표시를 숨기는 “최소화”, 여러 개의 창 중 가장 앞으로 가져오기, 제목만 표시하는 “숨기기” 등이 지원되어, 이를 통해 창의 조작을 간편하게 할 수 있다.

:; 단일 문서 인터페이스 (''SDI'')

::창에서 하나의 데이터를 하나의 창 안에 완결시키는 방식. 이 경우 데이터의 수만큼 창이 출력된다. 다른 응용 프로그램의 창과 비교하여 사용할 수 있지만, 그만큼 창의 수가 많아져 관리가 복잡해진다.

:; 다중 문서 인터페이스 (''MDI'')

::하나의 창 안에 중첩하여 창이 표시되고, 여러 개의 데이터를 관리하는 방식. 이 경우 창 관리가 간편해지지만, 작업 관리가 이중화된다.

:; 탭

::MDI에서의 데이터 관리 방식 중 데이터의 제목을 창 안에 나란히 배치하고, 제목을 선택하여 필요한 데이터만 표시하는 것. 이를 통해 간편하게 데이터에 접근할 수 있게 된다.

; 메뉴

:응용 프로그램, 운영 체제(OS)에서 지시할 수 있는 명령을 계층적으로 표현한 것. 화면 상단 또는 화면 하단에 배치되며, 해당 응용 프로그램에서 사용할 수 있는 명령이 거의 모두 배치된다. 일반적으로 왼쪽에 중요도가 높은 것이 배치되고, 오른쪽으로 갈수록 중요도가 낮아진다. 명령의 계층은 응용 프로그램에 따라 다르지만, 파일 조작, 편집 기능을 중시하여 이러한 명령을 왼쪽부터 배치하고, 오른쪽에는 도움말 등이 배치된다. 마우스의 왼쪽 버튼으로 조작한다.

; 상황에 맞는 메뉴

:응용 프로그램이 준비한 계층적 메뉴와는 별도로, 메뉴 이외의 곳에서 마우스의 오른쪽 버튼 등을 눌렀을 때 작동하는 메뉴. 버튼이 호출된 위치에 따라 메뉴의 내용이 바뀌어 편집 작업을 간편하게 할 수 있도록 되어 있다.

; 아이콘

:데이터 관리 응용 프로그램에서 데이터, 응용 프로그램, 디렉토리 등을 표현한 것.

:데이터 관리 응용 프로그램, 즉 디렉토리에서의 사용자 데이터 관리나 특정 데이터를 관리하는 응용 프로그램의 경우, 아이콘으로 데이터를 표현한다. 일반적으로 데이터의 내용이나 확장자 등에서 연관된 응용 프로그램을 표현하지만, 사용자가 자유롭게 변경할 수 있는 경우도 있다.

:데이터의 아이콘은 열면 연관된 응용 프로그램의 시작을 지원한다. 응용 프로그램 아이콘은 응용 프로그램의 시작만 수행한다.

; 버튼

:메뉴 중에서 사용 빈도가 높은 명령을 그림으로 표현하여 응용 프로그램 내에 배치한 것.

:응용 프로그램에 배치되는 버튼은 일반적으로 메뉴를 대신한다. 사용 빈도가 높은 것부터 배치되며, 메뉴의 계층을 거치지 않고도 해당 기능을 사용할 수 있도록 되어 있다. 그러나 사용자에 따라 명령의 사용 빈도가 다르므로, 이 배치를 편집할 수 있도록 되어 있는 것이 일반적이다.

; 휴지통

: 파일 삭제에 대한 보호 장치를 위해 "휴지통"이라고 불리는 기능을 가진 것이 있다. 이것은 파일 삭제 시 일시적으로 다른 위치로 이동시켜 잘못된 파일 삭제를 미연에 방지할 수 있다. 맥킨토시에서는 휴지통이 파일뿐 아니라 다양한 객체의 삭제 기능을 가지고 있다.

; 애플리케이션 실행기

: GUI에서 애플리케이션을 실행하는 데 다양한 방식이 있지만, 일부 OS는 메뉴 형식의 애플리케이션 실행기를 가지고 있다. NEXTSTEP과 macOS에서는 독이라고 불리는 팔레트 형식의 기능을 가지고 있으며, 파일이나 애플리케이션의 다양한 정보를 저장하고 클릭하여 실행할 수 있다.

4. 상호 작용



GUI의 시각적 구성과 시간적 동작을 설계하는 것은 소프트웨어 응용 프로그램 프로그래밍에서 인간-컴퓨터 상호 작용 영역의 중요한 부분이다. 그 목표는 저장된 프로그램의 기본 논리 설계에 대한 효율성과 사용 편의성을 향상시키는 것이며, 이러한 설계 분야는 ''사용성''이라고 한다. 사용자 중심 설계 방법을 사용하여 설계에 도입된 시각 언어가 작업에 적합하도록 한다.

응용 프로그램의 시각적 그래픽 인터페이스 기능은 때때로 "크롬(chrome)" 또는 "GUI"라고 불린다.[12][13][14] 일반적으로 사용자는 보유한 데이터의 종류에 적합한 상호 작용을 허용하는 시각적 위젯을 조작하여 정보와 상호 작용한다. 잘 설계된 인터페이스의 위젯은 사용자의 목표를 달성하는 데 필요한 작업을 지원하도록 선택된다. 모델-뷰-컨트롤러는 인터페이스가 응용 프로그램 기능과 독립적이고 간접적으로 연결되어 GUI를 쉽게 사용자 지정할 수 있는 유연한 구조를 허용한다. 이를 통해 사용자는 원하는 대로 다른 "스킨" 또는 "테마"를 선택하거나 디자인할 수 있으며, 사용자 요구 사항이 변화함에 따라 디자이너가 인터페이스를 변경하는 작업을 용이하게 한다. 좋은 GUI 디자인은 시스템 아키텍처보다 사용자와 더 관련이 있다.

과 같은 큰 위젯은 일반적으로 웹 페이지, 이메일 메시지 또는 그림과 같은 주요 프레젠테이션 콘텐츠에 대한 프레임이나 컨테이너를 제공한다. 작은 위젯은 일반적으로 사용자 입력 도구 역할을 한다.

GUI는 현금 자동 입출금기(ATM), 레스토랑의 판매 시점(POS) 터치스크린,[15] 소매점의 셀프 서비스 체크아웃, 항공사 셀프 티켓 및 체크인, 기차역이나 박물관과 같은 공공 장소의 정보 키오스크, 실시간 운영 체제(RTOS)를 사용하는 임베디드 산업 응용 프로그램의 모니터 또는 제어 화면과 같이 응용 프로그램별 GUI로 수직 시장의 요구 사항에 맞게 설계될 수 있다.

휴대폰과 휴대용 게임 시스템도 응용 프로그램별 터치스크린 GUI를 사용한다. 최신 자동차는 내비게이션 시스템과 멀티미디어 센터 또는 내비게이션 멀티미디어 센터 조합에 GUI를 사용한다.

또한 GUI에 영향을 미치는 프로그램에 의해 수행되는 작업도 있다. 예를 들어, 컴퓨터 프로그램 간의 통신을 용이하게 하기 위한 inotify 또는 D-Bus와 같은 구성 요소가 있다.

4. 1. 포인팅 장치

인간-컴퓨터 상호작용 장치는 GUI와의 효율적인 상호 작용을 위해 컴퓨터 키보드(특히 키보드 단축키와 함께 사용됨), 커서(혹은 포인터) 제어를 위한 포인팅 장치를 포함한다. 포인팅 장치에는 마우스, 포인팅 스틱, 터치패드, 트랙볼, 조이스틱, 가상 키보드, 헤드업 디스플레이(눈높이에 있는 반투명 정보 장치) 등이 있다.

GUI의 기본은 포인팅 장치로 커서를 조작하고, 장치에 달린 버튼(보통 2~3개)을 누르는 것이다. 이를 통해 “위치”와 “지시”를 명확히 하고, 시각적인 조작을 할 수 있다.

지시의 내용은 커서의 위치에 따라 다르다. 데이터 관리 애플리케이션에서는 첫 번째 버튼은 커서 위치에 있는 데이터를 선택하고, 두 번 연속으로 누르는(더블클릭) 것으로 데이터에 따라 적절히 정의된 애플리케이션을 호출하여 처리를 시작한다. 애플리케이션의 메뉴, 버튼 위에서는 그 명령을 시작한다. 데이터 위에서는 데이터에서의 조작 위치를 지시한다.

두 번째 버튼은 보통 어떤 경우에도 애플리케이션에 의해 정의된 컨텍스트 메뉴를 출력한다. 이 메뉴를 첫 번째 버튼으로 지시함으로써 그 명령을 실행할 수 있다. 세 번째 버튼은 X 윈도우 시스템에서 자주 사용된다.

또한 최근에는 네 번째 버튼, 다섯 번째 버튼을 장착한 마우스나, 세 번째 버튼이 창에 직접 기능하는 휠 기능을 겸하고 있는 것이 있으며, 적절히 애플리케이션 또는 OS에 의해 정의된 기능을 제공한다.

4. 2. 키보드

인간-컴퓨터 상호작용 장치는 GUI와의 효율적인 상호 작용을 위해 컴퓨터 키보드(특히 키보드 단축키와 함께 사용됨)를 포함한다. GUI에서도 키보드는 중요한 장치이다. 데이터의 내용뿐만 아니라, 키보드 단축키와 같이 인터페이스 조작을 향상시키는 기능과 연동시킴으로써, 조작성 향상을 도모하기도 한다.

4. 3. 터치스크린

터치스크린은 손가락이나 펜으로 터치패널에 표시된 버튼이나 아이콘을 직접 터치하여 다양한 조작을 하는 기기이다. ATM 등에서 일반화되어 있으며, 내비게이션 시스템이나 닌텐도 DS에서도 사용되어 직관적인 조작에 뛰어나다. 2007년 이후로는 패드에 접촉하는 손가락의 개수를 인식하여 그 동작을 바꾸는 멀티터치 대응 패널을 이용한 기기가 시장에 출시되기 시작했다.

5. Post-WIMP 인터페이스

개인용 디지털 보조 장치(PDA)나 스마트폰과 같은 소형 모바일 기기는 공간 및 사용 가능한 입력 장치의 제약 때문에 다양한 통합적 은유를 사용하여 일반적으로 WIMP 요소를 사용한다. WIMP에 적합하지 않은 애플리케이션은 집합적으로 ''포스트 윔프'' UI라고 불리는 새로운 상호 작용 기법을 사용할 수 있다.[18]

2011년을 기준으로 애플 iOS(아이폰) 및 안드로이드와 같은 일부 터치스크린 기반 운영 체제는 포스트 윔프로 분류되는 GUI를 사용한다. 이러한 운영 체제는 디스플레이에 두 개 이상의 손가락을 접촉하여 사용하는 상호 작용 방식을 지원하며, 이를 통해 한 개의 포인터와 마우스로는 지원되지 않는 핀치 및 회전과 같은 동작이 가능하다.[19]

6. GUI와 다른 인터페이스

그래픽 사용자 인터페이스(GUI)의 개념은 1960년대에 이반 서덜랜드가 1963년에 개발한 스케치패드를 통해 제안되었다. 스케치패드컴퓨터 지원 설계(CAD) 소프트웨어의 시초이자 최초로 완전한 그래픽 사용자 인터페이스를 구현한 것이었다. 비슷한 시기에 더글라스 엥겔바트를 비롯한 SRI 인터내셔널의 연구자들은 하이퍼링크를 기반으로 마우스를 사용하는 NLS(On-line System)를 개발하였다.

제록스 파크는 NLS의 하이퍼링크 개념을 그래픽으로 확장하였으며, 1973년에 개발된 제록스 알토 컴퓨터는 그래픽 사용자 인터페이스를 사용하는 최초의 컴퓨터가 되었다. 현재 대부분의 그래픽 사용자 인터페이스는 기본적으로 이 인터페이스에서 유래했으며, 어떤 사람들은 이들을 ‘파크 사용자 인터페이스(PUI)’라고 부르기도 한다. 파크 사용자 인터페이스는 윈도, 메뉴, 아이콘, 라디오 단추, 체크 상자 등의 그래픽 요소들을 사용하며, 마우스와 같은 포인팅 장치를 키보드와 함께 사용한다.

이후 애플 컴퓨터는 제록스 파크에서 만든 이러한 그래픽 사용자 인터페이스를 보고 당시 비상장이었던 애플의 주식 100만달러 어치를 지불하고 기본적인 기술을 전수받았다. 1983년 그래픽 사용자 인터페이스에 기반한 컴퓨터 리사(LISA)를 출시했지만 값이 너무 비싼 탓에 실패하였다. 그러나 이후 1984년에 나온 애플의 매킨토시는 상업적인 성공을 이뤘다. 한편 매킨토시가 이러한 성공을 거두자 마이크로소프트사는 마이크로소프트 윈도우를 개발하였다. 이는 매킨토시의 아이디어를 다시 모방한 것이었으며 이후 법정소송을 거치기도 하였다. 1995년 마이크로소프트사가 윈도우 95를 출시하여 성공을 거둠으로써 본격적인 그래픽 사용자 인터페이스의 대중화를 이루었다. 한편 CUI(character user interface, 명령 줄 인터페이스) OS인 유닉스(UNIX)와 그 계열리눅스에서는, X 윈도 시스템을 통해 그래픽 사용자 인터페이스를 구현하고 있다.

대화 상자가 시스템에 깊이 묻혀 있거나 재설계 중에 다른 위치로 이동하는 경우 GUI를 매우 어렵게 만들 수 있다. 또한 아이콘과 대화 상자는 일반적으로 사용자가 스크립팅하기가 더 어렵다.

6. 1. 명령 줄 인터페이스 (CLI)

명령 줄 인터페이스는 사용 가능한 명령어가 매우 많기 때문에, 짧은 단어와 기호의 순서를 사용하여 복잡한 작업을 수행할 수 있다. 자주 사용하는 작업에 대한 접근을 용이하게 하기 위해 사용자 정의 함수를 사용할 수 있다.[4]

명령 줄 인터페이스는 작업에 필요한 정보만 불러오기 때문에 경량이다. 예를 들어, 미리 보기 축소판이나 웹 페이지의 그래픽 렌더링이 없다. 이를 통해 많은 명령어를 익힌 후에는 효율성과 생산성이 향상된다.[4] 하지만 명령어 단어를 쉽게 찾거나 기억술적으로 기억하기 어려울 수 있기 때문에 이러한 수준에 도달하는 데는 시간이 걸린다. 또한 사용자가 여러 매개변수 또는 여러 다른 파일 이름으로 구성된 긴 명령어를 입력해야 하는 경우 명령 줄 사용이 느리고 오류가 발생하기 쉬워질 수 있다.[4] 그러나 "창, 아이콘, 메뉴, 포인터"( WIMP) 인터페이스는 사용자에게 시스템에서 사용 가능한 명령어 중 일부를 나타내고 트리거할 수 있는 많은 위젯을 제공한다.

WIMP는 모드를 광범위하게 사용한다. 화면의 특정 위치에 대한 모든 키와 클릭의 의미는 항상 재정의되기 때문이다. 명령 줄 인터페이스는 현재 디렉토리 및 환경 변수와 같이 제한된 형태로만 모드를 사용한다.

대부분의 최신 운영 체제는 GUI와 어느 정도 수준의 CLI를 모두 제공하지만, 일반적으로 GUI가 더 많은 관심을 받는다.

7. GUI 래퍼

GUI 래퍼는 주로 리눅스유닉스 계열 소프트웨어 응용 프로그램에서, 텍스트 기반 UI 또는 명령줄 인터페이스(CLI) 버전을 우회하는 방법을 제공한다. 명령줄 또는 텍스트 기반 응용 프로그램을 사용하면 사용자가 프로그램을 대화형이 아닌 방식으로 실행할 수 있지만, 그 위에 있는 GUI 래퍼는 키보드에 명령어를 입력해야 하는 명령줄의 가파른 학습 곡선을 피할 수 있게 해준다. GUI 래퍼를 시작하면 사용자는 그래픽 아이콘과 데스크톱 환경의 시각적 표시기를 통해 직관적으로 상호 작용하고, 시작, 중지, 작업 매개변수 변경을 수행할 수 있다. 응용 프로그램은 두 인터페이스를 모두 제공할 수도 있으며, 그럴 경우 GUI는 일반적으로 명령줄 버전을 둘러싼 WIMP 래퍼이다. 이는 특히 유닉스 계열 운영 체제용으로 설계된 응용 프로그램에서 일반적인데, 개발자가 아이콘 디자인 및 버튼 배치와 같은 인터페이스 세부 사항에 신경 쓰지 않고 제품 기능에만 집중할 수 있도록 했기 때문에 명령줄 인터페이스가 먼저 구현되었다. 이러한 방식으로 프로그램을 설계하면 사용자가 프로그램을 셸 스크립트에서 실행할 수도 있다.

8. 3차원 그래픽 사용자 인터페이스 (3D GUI)

많은 환경과 게임은 3D 그래픽 기법을 사용하여 3차원 GUI 객체를 화면에 투영한다. 3D 그래픽의 사용은 주요 운영 체제(예: Windows Aero, Aqua(macOS))에서 매력적인 인터페이스(예: 창 아래에 있는 그림자 효과와 커서 사용 등의 "눈요깃거리" 포함)를 만들거나, 3차원에서만 가능한 기능적 목적을 위해 점점 더 일반화되고 있다. 예를 들어, 사용자 전환은 각 사용자의 작업 공간을 나타내는 면을 가진 정육면체를 회전하여 표현하고, 창 관리 기능은 Windows Vista에서 로덱스 스타일의 뒤집기 메커니즘을 통해 표현된다(Windows Flip 3D 참조). 두 경우 모두 운영 체제는 해당 창의 내용을 계속 업데이트하면서 동적으로 창을 변환한다.[40][41]

GUI는 일반적으로 WIMP 기반이지만, Microsoft Bob, 3dwm, 파일 시스템 탐색기, 파일 시스템 시각화, 3D 우편함, 및 GopherVR에서 사용되는 것과 같은 다른 메타포가 등장하기도 한다. 확대/축소(ZUI)는 방향 문제 및 숨겨진 개체의 사용성 단점 없이 3D 환경의 표현 이점을 제공할 것을 약속하는 관련 기술이다. 2006년, 힐크레스트 랩스는 최초의 TV용 ZUI를 선보였다.[42] 다른 혁신적인 사례로는 플레이스테이션 2의 메뉴, Xbox의 메뉴, Sun의 프로젝트 룩킹 글래스, 프로젝트 룩킹 글래스와 유사한 메티스,[43] 사용자가 마치 실제 문서인 것처럼 사실적인 움직임과 물리 법칙을 사용하여 문서와 창을 조작할 수 있는 BumpTop, 공동 작업을 위해 구축된 Croquet OS,[44] 그리고 Enlightenment 및 Compiz와 같은 합성 윈도우 매니저 등이 있다. 증강 현실가상 현실도 3D GUI 요소를 사용한다.[45]

9. 구현

GUI의 시각적 구성과 시간적 동작을 설계하는 것은 소프트웨어 응용 프로그램 프로그래밍에서 인간-컴퓨터 상호 작용 영역의 중요한 부분이다. 그 목표는 저장된 프로그램의 기본 논리 설계에 대한 효율성과 사용 편의성을 향상시키는 것으로, 이러한 설계 분야는 ''사용성''이라고 한다. 사용자 중심 설계 방법을 사용하여 설계에 도입된 시각 언어가 작업에 적합하도록 한다.

응용 프로그램의 시각적 그래픽 인터페이스 기능은 때때로 "크롬(chrome)" 또는 "GUI"라고 한다.[12][13][14] 일반적으로 사용자는 보유한 데이터의 종류에 적합한 상호 작용을 허용하는 시각적 위젯을 조작하여 정보와 상호 작용한다. 잘 설계된 인터페이스의 위젯은 사용자의 목표를 달성하는 데 필요한 작업을 지원하도록 선택된다. 모델-뷰-컨트롤러는 인터페이스가 응용 프로그램 기능과 독립적이고 간접적으로 연결되어 GUI를 쉽게 사용자 지정할 수 있는 유연한 구조를 허용한다. 이를 통해 사용자는 원하는 대로 다른 "스킨" 또는 "테마"를 선택하거나 디자인할 수 있으며, 사용자 요구 사항이 변화함에 따라 디자이너가 인터페이스를 변경하는 작업을 용이하게 한다. 좋은 GUI 디자인은 시스템 아키텍처보다 사용자와 더 관련이 있다.

과 같은 큰 위젯은 일반적으로 웹 페이지, 이메일 메시지 또는 그림과 같은 주요 프레젠테이션 콘텐츠에 대한 프레임이나 컨테이너를 제공한다. 작은 위젯은 일반적으로 사용자 입력 도구 역할을 한다.

GUI는 현금 자동 입출금기(ATM), 레스토랑의 판매 시점(POS) 터치스크린,[15] 소매점에서 사용되는 셀프 서비스 체크아웃, 항공사 셀프 티켓 및 체크인, 기차역이나 박물관과 같은 공공 장소의 정보 키오스크, 실시간 운영 체제(RTOS)를 사용하는 임베디드 산업 응용 프로그램의 모니터 또는 제어 화면과 같이 응용 프로그램별 GUI와 같이 수직 시장의 요구 사항에 맞게 설계될 수 있다.

휴대폰과 휴대용 게임 시스템도 응용 프로그램별 터치스크린 GUI를 사용한다. 최신 자동차는 내비게이션 시스템과 멀티미디어 센터 또는 내비게이션 멀티미디어 센터 조합에 GUI를 사용한다.

GUI는 다양한 방법과 라이브러리를 사용하여 생성된다. 사용자에게 보여지는 시각적 요소는 종종 뷰(View)라고 불리며, 사용자 입력을 처리하는 내부 요소는 종종 컨트롤러(Controller)라고 불린다.

9. 1. 선언적 UI

선언적 프로그래밍을 사용하여 구성된 GUI이며, 이를 구현하는 방법이다. GUI의 생성 및 업데이트를 이전 상태를 기반으로 한 업데이트 명령어로 코딩하는 대신, '어떤 상태여야 하는지'를 선언하여 코딩한다. 상태를 분리함으로써 UI 상태를 더욱 예측 가능하게 만들 수 있다. 템플릿 엔진은 정적 템플릿과 동적 변수의 관계를 선언하고 있다고 볼 수 있으므로, 업데이트된 상태와 템플릿으로부터 템플릿 엔진을 통해 UI를 생성하여 UI를 업데이트하는 방식은 선언적 UI라고 할 수 있다. 이러한 의미에서 선언적 UI는 오래전부터 존재하는 GUI 구현 방법 중 하나이다.

2010년대 중반 웹 애플리케이션 분야를 시작으로 다양한 디바이스에서 선언적 UI를 표방하는 UI 프레임워크가 등장하고 있다.

  • * 리액트(React)[50]
  • * 앵귤러(Angular)[51]
  • * 뷰.js(Vue.js)[52]
  • macOS, iOS
  • * 스위프트UI(SwiftUI)[53]
  • 안드로이드
  • * 리액트 네이티브(React Native)[54] (iOS 포함)
  • 멀티 플랫폼
  • * 플러터(Flutter)[55] (멀티 플랫폼)

9. 2. 데이터 바인딩

데이터(모델)와 UI(뷰)를 연결하여 한쪽의 변경을 암시적으로 다른 쪽에 전파하는 기법을 데이터 바인딩이라고 한다. 선언적 UI와 결합함으로써 모델의 변경이 자동적으로 선언적 UI의 업데이트에 암시적으로 반영된다.

참조

[1] 서적 Longman Pronunciation Dictionary Pearson Longman
[2] 웹사이트 How to pronounce GUI in English https://dictionary.c[...] 2020-04-03
[3] 웹사이트 GUI 2024-12-07
[4] 웹사이트 Command line vs. GUI https://www.computer[...] 2020-04-03
[5] 웹사이트 The GUI versus the Command Line: Which is better? (Part 1) https://learn.micros[...] 2024-01-30
[6] 웹사이트 The GUI versus the Command Line: Which is better? (Part 2) https://learn.micros[...] 2024-01-30
[7] 웹사이트 Graphical user interface https://www.scienced[...] 2019-05-09
[8] 웹사이트 Graphical User Interface (GUI) https://www.britanni[...] 2019-06-12
[9] 백과사전 GUI https://www.pcmag.co[...] 2019-06-12
[10] 웹사이트 Off with Their HUDs!: Rethinking the Heads-Up Display in Console Game Design https://web.archive.[...] 2006-02-14
[11] 웹사이트 GUI definition http://www.linfo.org[...] 2004-10-01
[12] 웹사이트 chrome http://www.catb.org/[...] 2020-04-03
[13] 웹사이트 Browser and GUI Chrome https://web.archive.[...] 2012-01-29
[14] 학술지 Graphical user interfaces: Graphical user interfaces https://onlinelibrar[...] 2011-02-23
[15] 웹사이트 The ViewTouch restaurant system http://www.atarimaga[...]
[16] 웹사이트 What is a graphical user interface (GUI)? https://www.ionos.co[...] 2020-09-14
[17] 웹사이트 Mobile UX Design: List View and Grid View https://uxplanet.org[...] 2020-05-30
[18] 학술지 Beyond WIMP https://doi.org/10.1[...]
[19] 웹사이트 Reality-Based Interaction: A Framework for Post-WIMP Interfaces https://www.cs.tufts[...]
[20] 웹사이트 A Creative Programming Environment, Remixed http://citeseerx.ist[...]
[21] 웹사이트 Aesthetics and Art in the Early Development of Human-Computer Interfaces https://web.archive.[...] 2020-10-01
[22] 서적 Pygmalion: A Creative Programming Environment https://books.google[...]
[23] 웹사이트 The first GUIs http://www.catb.org/[...]
[24] Youtube Xerox Star user interface demonstration, 1982 https://www.youtube.[...]
[25] 웹사이트 VisiCorp Visi On http://toastytech.co[...]
[26] 서적 A Windows Retrospective, PC Magazine Jan 2009 https://books.google[...] Ziff Davis 2009-01-01
[27] 웹사이트 Magic Desk I for Commodore 64 http://toastytech.co[...]
[28] 뉴스 Value of Windowing is Questioned https://www.nytimes.[...] 1984-12-25
[29] 웹사이트 Apple's 1984: The Introduction of the Macintosh in the Cultural History of Personal Computers https://web.archive.[...] 1997-10-01
[30] 서적 Electric Dreams: Computers in American Culture New York University Press 2011-10-06
[31] 웹사이트 Review of ''Pirates of Silicon Valley'' Movie https://web.archive.[...] DotJournal.com 2014-01-24
[32] 뉴스 With Windows 95's Debut, Microsoft Scales Heights of Hype https://www.washingt[...] 1995-08-24
[33] 웹사이트 Computers Timeline of Computer History Computer History Museum http://www.computerh[...] 2017-04-02
[34] 간행물 iMania https://web.archive.[...] 2007-02-19
[35] 웹사이트 The iPad/tablet PC market defined? https://web.archive.[...]
[36] 웹사이트 Ballmer (and Microsoft) still doesn't get the iPad https://arstechnica.[...] 2010
[37] 잡지 The iPad's victory in defining the tablet: What it means http://www.infoworld[...] 2011-07-05
[38] 학술지 Chapter 2: Mobile Devices in 2011 https://journals.ala[...] 2011-03-17
[39] 웹사이트 What is a Graphical User Interface? Definition and FAQs https://www.omnisci.[...] 2022-01-26
[40] 웹사이트 3D Mailbox – 3-Dimensional Email Software. Bring e-mail to life! Email just got cool and fun. http://www.3dmailbox[...] 2022-07-14
[41] 웹사이트 3D Mailbox https://download.cne[...] 2022-07-14
[42] 웹사이트 CES Unveiled@NY ‘07: Point and click coming to set-top boxes? http://gadgets.macwo[...] 2006-11-11
[43] 웹사이트 Metisse – New Looking Glass Alternative https://developers.s[...] 2004-06-29
[44] 웹사이트 Croquet – A Collaboration System Architecture http://www.croquetco[...] 2022-09-17
[45] 웹사이트 Designing User Experience for Virtual Reality (VR) applications https://uxplanet.org[...] 2022-05-06
[46] 웹사이트 Object-Oriented GUIs are the Future http://openmct.blogs[...] 2012-08-23
[47] 웹사이트 GUI https://www.sophia-i[...] 2020-07-11
[48] 웹사이트 エンゲルバートによる1968年のプレゼンテーションの一部。レポートや論文をどのようにして共同作成・編集・完成・閲覧・出力させるかのデモ。 http://vodreal.stanf[...]
[49] 웹사이트 THE EARLY HISTORY OF SMALLTALK http://www.metaobjec[...]
[50] 웹사이트 宣言的な View https://ja.reactjs.o[...] 2019-11-08
[51] 웹사이트 シンプルで宣言的なテンプレートを使用して素早く機能を構築します https://angular.jp/ 2019-11-08
[52] 웹사이트 Vue.js のコアは、単純なテンプレート構文を使って宣言的にデータを DOM に描画することを可能にするシステムです https://jp.vuejs.org[...]
[53] 웹사이트 宣言型シンタックス. SwiftUIは宣言型シンタックスを使用しているため、ユーザーインターフェイスの動作をシンプルに記述することができます。 https://developer.ap[...]
[54] 웹사이트 React components wrap existing native code and interact with native APIs via React’s declarative UI paradigm and JavaScript. https://facebook.git[...]
[55] 웹사이트 declarative style used by Flutter https://flutter.dev/[...]
[56] 웹사이트 http://www.computerh[...]
[57] 웹인용 Technet.com http://blogs.technet[...] 2018-05-21
[58] 웹인용 Technet.com http://blogs.technet[...] 2018-05-21
[59] 웹인용 window manager Definition https://www.pcmag.co[...] Ziff Davis Publishing Holdings Inc. 2008-11-12



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com